#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：pytest_allure_pytest-html_study 
@File    ：01_快速开始.py
@IDE     ：PyCharm 
@Author  ：XiaoDengYa
@Date    ：2021/6/2/002 16:05 
"""


def func(x):
    return x + 1


def test_answer():
    assert func(3) == 5


class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, "check")# 检查x中是否包含check的属性


"""
Pytest执行用例规则

1、某个目录下所有的用例
pytest
2、执行某一个 py 文件下用例 
pytest 脚本名称.py
3、运行start.py 模块里面的某个函数，或者某个类，某个类里面的方法
pytest -v 08_mark.py::TestClass::test_method
pytest 08_mark.py::TestClass::test_method
pytest start.py::test_answer
4、运行start.py 模块里面,测试类里面的某个方法
pytest start.py::TestClass::test_two
5、-m 标记表达式(运行已经标记的用例)
 pytest -m login （用例上有@pytest.mark.login这样装饰器的用例会运行）
6、-q 简单打印，只打印测试用例的执行结果
pytest -q start.py
7、-s 详细打印
pytest -s start.py
8、-x 遇到错误时停止测试
pytest start.py -x
9、—maxfail=num，当用例错误个数达到指定数量时，停止测试
pytest start.py --maxfail=1
10、-k 匹配用例名称（执行测试用例名称包含http的所有用例）
pytest -s -k http start.py （只执行用例名称包含http的用例）
11、-k 根据用例名称排除某些用例
 pytest -s -k "not http" start.py（排除掉用例名称包含http的用例）
12、-k 同时匹配不同的用例名称
pytest -s -k "method or weibo" start.py


"""